Tutorial do Crackme:

Bruteme by ToMKoL... (Cracked by Lemmy)

Program korzysta z GETDLGITEMTEXTA wiec zakladamy w SI pulapke.
Po wpisaniu jakiejkolwiek litery jestesmy z powrotem w SI
Wciskamy F12 i naszym oczom pokazuje sie krotki fragment sprawdzajacy
dlugosc tekstu ... Szczerze mowiac nie chcialo mi sie jej analizowac
tylko sprawdzalem dla kazdej liczby liter > 7...
Dla dlugosci tekstu = 12 sub eax,9c.... itd zwraca 0 i prog przeskakuje dalej...

Potem odbywa sie sprawdzanie 4 pierwszych liter....
Program wczytuje je do eax i robi tam na nich jakies operacje :

mov ecx, nasze 4 litery :)
xor ecx, 1b51aaf8h
imul ecx,ecx, 000000aah
add ecx, ac6329bfh
xor ecx, nasze 4 litery
imul ecx, ecx,19
xor ecx, 2384fa7ch
sub ecx,72fe93bah
jecxz Adzia (jezeli w rejestrze ecx jest 0 to skocz do nastepnej czesci
               sprawdzania , w przeciwnym razie napisz 'Wrong password')

Czyli mowiac krotko taka mala zadyma ...
Niestety jestem zbyt leniwy , aby rozgryzac to od konca ... o wiele prosciej
napisac program , ktory zrobi to za nas ...
prog do obliczania pierwszych 4 liter wyglada tak dla MASM6.0
--------------------------------------
..386
..model flat,stdcall
option casemap:none

WinMain proto :DWORD,:DWORD,:DWORD,:DWORD

include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
include \masm32\include\gdi32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\gdi32.lib

..data
licznik dd 00000000h
a dd 01b51aaf8h

..code
start: 
mov ecx,licznik
xor ecx,a
imul ecx,ecx,000000aah
add ecx,00AC6329BFh
xor ecx,licznik
imul ecx,ecx,00000019h
xor ecx,2384fa7ch
sub ecx,72fe93bah
jecxz adzia
inc licznik
jnz start
adzia:
invoke MessageBox, NULL, 0, 0, MB_OK
	invoke ExitProcess,NULL       
end start
--------------------------------------
Jak on dziala ???
Otoz dla wszyskich mozliwych liczb sprawdza warunki z programu ...
kiedy znajdzie jecxz wskazuje na adres procedury MessageBox...
Po co nam to ???
Po prostu zakladamy pulapke na MESSAGEBOXA w SI
uruchamiamy proga i mozemy na chwilke wyjsc sie zalatwic ...
wracamy , patrzymy - jestesmy w SI !!!
patrzymy na adres licznika (u mnie zawsze bylo to 403000)

D 403000

i juz mamy pierwsze 4 litery !!!
Identycznie mozna zrobic programy dla 2 kolejnych procedur
potem wchodzimy do jakiegos edytora wklepujemy te znaczki
pozniej przeklejamy do BRUTEME i mamy:Password OK

U mnie ten kod wyglada tak :"NBAdO" (oczywiscie bez cudzyslowia)
Nie wiem czy dokladnie o to chodzilo autorowi , ale to haslo spelnia warunki
programu zlamanago opisanych w pliku dostarczonym do BRUTEME

PS. ten kod sie moze roznic zwlaszcze ze jest bardzo duzo spelniajacych
warunek 2-gi (4-8 litery) xx C1 B1 yy , gdzie xx,yy dowolne (na 99% nie chcialo
mi sie sprawdzac)

                                                    Lemmy

Ps2 czy ta oferta na source code jest nadal aktualna ???

me: lemmy@go2.pl

Aha , Haslo kopiujcie uzywajac notatnika!!!!!!!!!!!!
